// 工具函数
const util = require('/utils/util')
// 自动登录
const miniProgramAutoLogin = require('/config').miniProgramAutoLogin
// 手机登录
const miniProgramLogin = require('/config').miniProgramLogin
// 检验session_key是否过期
// const checkToken = require('/config').checkToken
// 登录对象实例
const wxLogin = require('/utils/login')

App({
  subtxt: "loading",
  shareTicket:"",
  onLaunch: function (res) {
    // 打开调试
    wx.setEnableDebug({
      enableDebug: true
    })
    wx.showShareMenu({
      withShareTicket: true
    }) 
    if (res.scene == 1044) {//群发
      console.log(res.shareTicket)
    }
    // 初始化小程序基础参数设置
    this.init()
  },
  onShow: function (res) {
    wx.showShareMenu({
      withShareTicket: true
    }) 
  },
  onHide: function () {
  },
  onError: function (msg) {
    console.log(msg)
  },
  init: function () {
    // 初始化默认为深圳京基100大厦  即公司总部
    wx.setStorage({
      key: 'location',
      data: {
        'latitude': 22.549356,
        'longitude': 114.11311
      }
    })

    // 获取用户信息
    // this.getUserInfo()
    // 获取定位
    // this.getLocation()
 

    // 是否已经登录
    var sessionMobile = wx.getStorageSync('SESSION_MOBILE')
    if (sessionMobile || sessionMobile == ''){
      this.isLogin()
    }


    // 获取设备信息
    this.getSystemInfo()
  },
  // 获取定位
  getLocation: function () {
    var self = this
    var latitude
    var longitude

    // 获取定位
    wx.getLocation({
      type: 'gcj02',
      success: function (res) {
        latitude = res.latitude
        longitude = res.longitude

        // 保存定位获取的经纬度在本地用于下次获取失败使用
        wx.setStorage({
          key: 'location',
          data: {
            'latitude': latitude,
            'longitude': longitude
          }
        })

        self.getLocationCompleteCallback(latitude, longitude)
      },
      fail: function (msg) {
        console.log(msg)
        // 获取本地保存的默认经纬度
        wx.getStorage({
          key: 'location',
          success: function (res) {
            latitude = res.data.latitude
            longitude = res.data.longitude

            self.getLocationCompleteCallback(latitude, longitude)
          }
        })
      }
    })
  },
  // 获取定位无论失败或者成功都必须在其回调函数中调用
  getLocationCompleteCallback: function (latitude, longitude) {
    // 设置全局经纬度
    this.globalData.location = {}
    this.globalData.location.latitude = latitude
    this.globalData.location.longitude = longitude

    // 由于 获取地址 是网络请求，可能会在 Page.onLoad 之后才返回
    // 所以此处加入 callback 以防止这种情况
    if (this.locationCallback) {
      this.locationCallback()
    }
  },
  // 判断是否已经登录
  isLogin: function (options) {
    var self = this

    options = options || {}
    var mobile = wx.getStorageSync('SESSION_MOBILE')
    var sessionKey = wx.getStorageSync('SESSION_KEY')

    // 判断是否是初次登录
    if (!mobile){
      wx.removeStorageSync('SESSION_MOBILE')
      wx.removeStorageSync('SESSION_KEY')
      util.confirmMsg({
        content: '您还未登录！请登录',
        success: function(){
          wx.redirectTo({
            url: '/pages/login/login',
          })
        },
        fail: function(){
          var pagePath = util.getCurrentPageUrl()
          console.log(pagePath)
          if (pagePath === '/pages/mine/mine'){
            wx.reLaunch({
              url: '/pages/index/index',
            })
          } else {
            wx.navigateBack()
          }
        }
      })
      return
    }

    // 判断手机登录还是自动登录
    var monileCode = wx.getStorageSync('SESSION_CODE')
    if (monileCode){
      wxLogin.setLoginUrl(miniProgramLogin)
    } else {
      wxLogin.setLoginUrl(miniProgramAutoLogin)
    }

    // 登录并重新获取token(每次重新打开小程序都会去更新一次token)
    wxLogin.login(options)
  },
  // 获取微信用户信息
  getUserInfo: function(){
    var self = this
    wx.getStorage({
      key: 'userInfo',
      success: function (res) {
        self.globalData.userInfo = res.data
      },
      fail: function () {
        // 这个接口2018年4月有改动
        wx.getUserInfo({
          success: function (res) {
            self.globalData.userInfo = res.userInfo
            wx.setStorage({
              key: 'userInfo',
              data: res.userInfo
            })
          }
        })
      }
    })
  },
  // 获取设备信息
  getSystemInfo: function (){
    var systemInfo = wx.getStorageSync('systemInfo')
    var self = this
    if (systemInfo){
      // 已经存在
      self.globalData.systemInfo = wx.getStorageSync('systemInfo')
      return
    } else{
      // 不存在
      systemInfo = wx.getSystemInfoSync()
      wx.setStorageSync('systemInfo', systemInfo)
      self.globalData.systemInfo = systemInfo
    }
  },
  globalData: {
    searckKeyRecordNum: 10, // 保存搜索关键字个数
    location: {}, // 经纬度、省份和城市信息
    userInfo: null, // 用户信息
    JMphone: '136-0268-2850', // 加盟电话
    KFphone: '189-2344-1344', // 客服咨询电话
    systemInfo: null, // 手机设备信息
    gymImg: '../../image/gym-default.png', // 健身房头像默认图片
    userImg: '../../image/user-default.png', // 用户头像默认图片
    gymBanner: '../../image/gym-banner.png', // 健身房banner默认图片
    ticketBanner: '../../image/ticket-default.png', // 用户头像默认图片
  }
})